package com.itheima.datedemo;

import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.Locale;
import java.util.logging.SimpleFormatter;

public class Demo {
    public static void main(String[] args) /*throws ParseException*/ {
        //1、时间日期类
        //System.currentTimeMillis当前时间毫秒值
        /*long millis = System.currentTimeMillis();
        当前时间离时间原点毫秒值
        System.out.println(millis);*/
        //空参构造，当前时间封装成一个对象
        /*Date date1 = new Date();
        System.out.println(date1);*/
        //带long类型的构造
        //时间原点过了---毫秒值的时间，我们在中国，东八区加8小时
        /*Date date2 = new Date(0L);
        System.out.println(date2);
        //1970年1月1日上午九点
        Date date3 = new Date(3600L*1000);
        System.out.println(date3);*/
        //当前时间日期
        /*Date date = new Date();
        long time = date.getTime();
        //大干一百天
        Date date1 = new Date(time +100L*24*60*60*1000);
        System.out.println(date1);*/
        //日期格式化类
        /*Date d = new Date();
        SimpleDateFormat sim1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");*/
        //格式化
        /* String s = sim1.format(d);
        System.out.println(s);
        System.out.println("---------------");*/
        //字符串解析为日期对象
        //日期格式化类：构造方法中传入模式
        /*String s1 = "2021年07月22日 10:00:00";
        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        Date date = null;
        try {
            date = format.parse(s1);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        System.out.println(date);*/
        //案例--参加秒杀活动
        /*String start = "2020年11月11日 0:0:0";
        String end = "2020年11月11日 0:10:0";

        String jia = "2020年11月11日 0:03:47";
        String pi = "2020年11月11日 0:10:11";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        long startTime = sdf.parse(start).getTime();
        long endTime = sdf.parse(end).getTime();
        long jiaTime = sdf.parse(jia).getTime();
        long piTime = sdf.parse(pi).getTime();
        if (jiaTime >= startTime && jiaTime <= endTime) {
            System.out.println("小贾参与成功");
        } else {
            System.out.println("小贾未能参与");
        }
        System.out.println("---------------------");
        if (piTime >= startTime && piTime <= endTime) {
            System.out.println("小皮参与成功");
        } else {
            System.out.println("小皮未能参与");
        }*/
        //当前时间增加时间--日期格式化--解析为日期对象--获得时间毫秒值--创建对象--格式化
        /*String s = "2020年11月11日 00:00:00";
        SimpleDateFormat sim = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        long time = sim.parse(s).getTime();
        Date date = new Date(time + (1000 * 3600 * 24));
        String format = sim.format(date);
        System.out.println(format);*/
        //获得时间 ,LocalDateTime获取方法LocalDateTime.of;LocalDateTime.now();
        /*LocalDateTime localDateTime = LocalDateTime.of(2020, 11,
                11, 11, 11, 20);
        int dayOfYear = localDateTime.getDayOfYear();
        int monthValue = localDateTime.getMonthValue();
        int dayOfMonth = localDateTime.getDayOfMonth();
        int hour = localDateTime.getHour();
        int minute = localDateTime.getMinute();
        int second = localDateTime.getSecond();
        System.out.println(dayOfYear);
        System.out.println(monthValue);
        System.out.println(dayOfMonth);
        System.out.println(hour);
        System.out.println(minute);
        System.out.println(second);*/
        //LocalDateTime转换方法 (应用)
        /*LocalDateTime now = LocalDateTime.now();
        System.out.println(now.toLocalDate());
        System.out.println(now.toLocalTime());*/
        //LocalDateTime格式化和解析 (应用)DateTimeFormatter.ofPattern
        //日期对象--字符串，格式化
       /* LocalDateTime now = LocalDateTime.now();
        //模式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        //格式化
        String s = formatter.format(now);
        System.out.println(s);
        System.out.println("-----------------");
        //字符串--日期对象：解析
        String s1 = "2021-07-22 11:30:33";
        DateTimeFormatter dateTime = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        //LocalDateTime类中的静态方法，按照指定的格式解析指定字符串
        LocalDateTime parse = LocalDateTime.parse(s1, dateTime);
        System.out.println(parse);*/
        //LocalDateTime增加或者减少时间的方法 (应用)dateTime.plusYears；dateTime.minusYears
        /*LocalDateTime dateTime = LocalDateTime.of(2020, 11, 11, 11, 11, 11);
        LocalDateTime dateTime1 = dateTime.plusYears(1);
        System.out.println(dateTime1);
        LocalDateTime dateTime2 = dateTime.plusYears(-1);
        System.out.println(dateTime2);
        System.out.println("-----------------------");
        LocalDateTime dateTime3 = dateTime.minusYears(2);
        System.out.println(dateTime3);
        LocalDateTime dateTime4 = dateTime.minusYears(-2);
        System.out.println(dateTime4);*/
        //LocalDateTime修改方法 (应用)with
        /*LocalDateTime localDateTime = LocalDateTime.of(2020, 11, 11, 11, 11, 11);
        LocalDateTime localDateTime1 = localDateTime.withMonth(8);
        System.out.println(localDateTime1);*/
        //Period (应用)时间间隔：年数月数日数
        /*LocalDate date = LocalDate.of(2020, 1, 1);
        LocalDate date1 = LocalDate.of(2022, 11, 11);
        Period period = Period.between(date, date1);
        System.out.println(period);
        System.out.println(period.getYears());
        System.out.println(period.toTotalMonths());*/
        //Duration (应用)时间间隔：秒毫秒纳秒
        /*LocalDateTime date3 = LocalDateTime.of(2020,1,1,1,1,1,1);
        LocalDateTime date4 = LocalDateTime.of(2022,11,11,11,11,11,11);
        Duration duration = Duration.between(date3, date4);
        System.out.println(duration);
        System.out.println(duration.getNano());
        System.out.println(duration.toNanos());*/
        //////////////////////////////////////////////////////////////////////////////////////////

    }
}
